宝塔面板设置禁止通过IP直接访问网站防止恶意解析或域名恶意绑定

77次阅读
没有评论

共计 2389 个字符,预计需要花费 6 分钟才能阅读完成。

背景

我们购买的云服务器都有一个外网 ip, 可以直接通过这个外网 ip 访问在云服务器上搭建的网站。我们通常也会购买一个域名来绑定这个外网 ip。正常情况下,是通过域名访问网站的。

那么,什么是恶意解析或域名恶意绑定呢?

如果我们的网站内容还是不错,就会有别有用心的人购买新域名,然后绑定到我们的外网 ip,  然后,通过他们的新域名就可以访问到我们的网站,搜索引擎就会收录他们的域名。

那么,恶意绑定的原理是什么呢?

本质上通过外网 ip 能够直接访问网站。

解决

方案 1

在已有的网站上设定策略,禁止 IP 和非本网站的域名的访问,直接返回 404 或 444。不需要修改 nginx 的配置,直接修改网站的配置文件,如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

代码如下:


set $deny 1; 
if ($host = "goubyte.com"){set $deny 0;} 
if ($host = "www.goubyte.com"){set $deny 0;} 
if ($deny = 1){return 404;}

方案 2

方案 1,虽然能解决网站的恶意解析的问题,如果部署多个站点,每个站点都需要单独配置。有点麻烦。

方案 2 的思路通过一个创建一个默认站点来对非法域名或 IP 进行拦截。

1 创建一个空的站点,如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

2 将 www.empty.com 空站点改为默认站点,如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

3 开启 https 防窜站。

HTTPS 防窜站 功能主要是为了解决指定了非 SSL 默认站点时,‌未开启 SSL 的站点使用 HTTPS 会直接访问到已开启 SSL 的站点的问题。‌因此,需要开启 https 防窜站。如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

4 空白站点开启 ssl。

空白站点配置假 SSL 证书,如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

并强制开启 https。假证书密钥如下:

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDXyF6m81zOeoOPvfk6nGKtyfczRG6/yeSkcc+66vGvq0s8oB7V
cCzLl1YcNsru3ixelPR2z1zvjKqa9/Aqh8+TvP1kGGbLD/mynjnj8l+0vVzZ+vnz
AH0RN9fpqzlpHmFBHQzQ25AtIAH8pXOL1541YN0TNPRA3kHUCL0FH8CkwwIDAQAB
AoGAQ4ejh6AV5VCWJ8AOZXdXsofIYzUBa+glNAmiNx8b8BwteZWq0KVAf56nBkFn
lQXW4OrA7wXKUfW11rXNZaIHJePJXv1swkN9+Em18Hon6BrtcqnKAwzAbhok3SzY
IVjI/zrgOABH6+ii77xCRBzI1itVPNN88DAUHC7PYLYiaaECQQD7PSoij37+kMc/
wPeEkl9r3vzU0OrsCsjU8Ev714OaoL/SIuAh6nsiRh9rcbUrrpGSSzIcmsk9HMDa
hXBNkNl5AkEA298yQvssaUc4tbEWxAVfd9DsHJdCdbXfgf9Dy5/tpCzYncY7T0du
VVHqKu3jXWoMc5XlesiCOerU/DIlMM8dGwJBANQn7GLO5iC1xWvS2bF7oVSIMtzL
pvW4jaszWBbNAPccc59RkA9T4LMqn/GtTZ4bhhYRpbl+BB21IC3nrNPzU5ECQG8T
Ln0QDruQs2F2eR3F6RjKfr1i3LxCiQtPPZycypzp2vS5tDS0zVRk8XuGehoy/N9X
lnqU2NURgU92tbsWpokCQQDdc9tU3B/OM/YfzUNwvOLmUVwrJX6PFSFsOn+XHrCC
q9LcGEAHyzaf5GEWje84ee4rkv5oaZcwll3dg4IioBnC
-----END RSA PRIVATE KEY-----

假证书如下:

-----BEGIN CERTIFICATE-----
MIIBkjCB/AIJAI3bCYqa39hiMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNVBAYTAiAg
MCAXDTE4MTEyNDA5MDMzOFoYDzIwOTkxMjMxMDkwMzM4WjANMQswCQYDVQQGEwIg
IDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA18hepvNcznqDj735Opxircn3
M0Ruv8nkpHHPuurxr6tLPKAe1XAsy5dWHDbK7t4sXpT0ds9c74yqmvfwKofPk7z9
ZBhmyw/5sp454/JftL1c2fr58wB9ETfX6as5aR5hQR0M0NuQLSAB/KVzi9eeNWDd
EzT0QN5B1Ai9BR/ApMMCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBiqHZsuVP09ubT
GzBSlAFEoqbM63sU51nwQpzkVObgGm9v9nnxS8Atid4be0THsz8nVjWcDym3Tydp
lznrhoSrHyqAAlK3/WSMwyuPnDCNM5g1RdsV40TjZXk9/md8xWxGJ6n1MoBdlK8T
H6h2ROkf59bb096TttB8lxXiT0uiDQ==
-----END CERTIFICATE-----

5 空白站点非法访问,配置 4444 或 404 错误码。如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

6 nginx 重载配置,然后,浏览器内输入 https://ip,空白站点就会接管该请求,并返回 444 错误码。如下图:

宝塔面板设置禁止通过 IP 直接访问网站防止恶意解析或域名恶意绑定

后记

本文,阐述了什么是恶意解析或域名恶意绑定,对于一个网站而言,如何防止恶意解析或恶意绑定,给出了两种解决方案,方案 1 是针对单站点的做法,并且配置简单。但是,对于多站点最好的是方案 2,虽然配置繁琐,但是一劳永逸,对于后续新增的站点,不会存在恶意解析的问题。推荐方案 2。

正文完
 0
醉酒的行者
版权声明:本站原创文章,由 醉酒的行者 于2024-08-11发表,共计2389字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)